package com.controleFamiliar.action;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.controleFamiliar.facade.CategoriaDespesaFacade;
import com.controleFamiliar.form.CategoriaDespesaForm;
import com.controleFamiliar.pojo.CategoriaDespesa;

public class CategoriaDespesaAction extends DispatchAction{
	
	public static final String FORWARD = "editarCategoriaDespesa";
	
	public ActionForward iniciarCadastroCategoria(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		CategoriaDespesaForm formulario = (CategoriaDespesaForm) form;
		//Caso haja algum erro retorna para a tela de cadastro
		String forward = FORWARD;
		formulario.limpar();
		try{
		CategoriaDespesaFacade facade = new CategoriaDespesaFacade();
		List<CategoriaDespesa> listaCategorias = facade.listarTodasCategorias();
		request.setAttribute("listaCategorias", listaCategorias);
		//validar permissão do usuário para essa função		
		//Usuario usuario = (Usuario)request.getSession().getAttribute("usuario");
		
		}catch(Exception e){
			throw e;
		}	
		return mapping.findForward(forward);
	}
	
	public ActionForward salvarCategoria(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		CategoriaDespesaForm formulario = (CategoriaDespesaForm) form;
		try{
		CategoriaDespesaFacade facade = new CategoriaDespesaFacade();
		
		CategoriaDespesa categoria = new CategoriaDespesa();
		categoria.setDescricao(formulario.getDescricao());
		
		facade.salvarCategoria(categoria);
		
		//validar permissão do usuário para essa função		
		//Usuario usuario = (Usuario)request.getSession().getAttribute("usuario");
		
		request.setAttribute("message", "Categoria salva com sucesso");
		
		}catch(Exception e){
			throw e;
		}	
		return this.iniciarCadastroCategoria(mapping, formulario, request, response);
	}
	
//	/**
//	 * Remove uma categoria previamente cadastrada.
//	 * @param mapping
//	 * @param form
//	 * @param request
//	 * @param response
//	 * @return
//	 * @throws Exception
//	 */
//	public ActionForward removerCategoria(ActionMapping mapping, ActionForm form,
//			HttpServletRequest request, HttpServletResponse response)
//			throws Exception {
//		CategoriaDespesaForm formulario = (CategoriaDespesaForm) form;		
//		try{
//		CategoriaDespesaFacade facade = new CategoriaDespesaFacade();
//		facade.removerCategoria(formulario.getCodCategoriaDespesa());
//		//validar permissão do usuário para essa função		
//		//Usuario usuario = (Usuario)request.getSession().getAttribute("usuario");
//		
//		request.setAttribute("message", "Categoria removida com sucesso");
//		
//		}catch(Exception e){
//			throw e;
//		}	
//		return this.iniciarCadastroCategoria(mapping, formulario, request, response);
//	}
	

}
